package com.gradumate.server.dao;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import javax.jdo.PersistenceManager;

import com.gradumate.server.PMF;
import com.gradumate.shared.VerleenToegang;

/**
 * @author Hugo Zonderland
 * 
 * Communiceerd met de datastore en slaat ToegangVerlenen objecten op.
 */
public class VerleenToegang_DAO {
	
	private final Logger log = Logger.getLogger(VerleenToegang_DAO.class.getName());
	
	/**
	 * Voegt een VerleenToegang object toe
	 */
	public boolean addVerleenToegang(VerleenToegang vt) {
		VerleenToegang daoVT = getVerleenToegang(vt.getStudentNummer());
		boolean b = false;
		if (daoVT == null) {
			PersistenceManager pmWrite = PMF.get().getPersistenceManager();
			try {
				pmWrite.makePersistent(vt);
				b = true;
			} finally {
				pmWrite.close();
			} 
		} 
		
		return b;
	}
	
	/**
	 * Haalt een verleen toegang op a.d.v de studentnummer
	 * @param int met studentNummer
	 * @return VerleentToegang object, anders null
	 */
	public VerleenToegang getVerleenToegang(int studentNummer) {
		if (studentNummer == 0) {
			return null;
		}

		VerleenToegang vt = null;

		PersistenceManager pm = PMF.get().getPersistenceManager();
		String query = "SELECT FROM " + VerleenToegang.class.getName() + " WHERE studentNummer == " + studentNummer + "";
		ArrayList<VerleenToegang> verleendetoegang = new ArrayList<VerleenToegang>(pm.detachCopyAll((List<VerleenToegang>) pm.newQuery(query).execute()));

		verleendetoegang.size();
		pm.close();

		if (verleendetoegang != null && !verleendetoegang.isEmpty()) {
			vt = verleendetoegang.get(0);
			log.info("getVerleenToegang(" + verleendetoegang + ") | Gebruiker: " + vt.toString());
		} else {
			System.out.println("VerleendeToegang met " + studentNummer + " levert niets op.");
		}

		log.info("getVerleenToegang(" + verleendetoegang + ")");

		return vt;
	}
}
